#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<assert.h>
#include<stdlib.h>

typedef int SLTDataType;
typedef struct SListNode
{
	SLTDataType data;
	struct SListNode* next;
}SLTNode;

SLTNode* BuyListNode(SLTDataType x);
void SListprint(SLTNode* phead);
void SListPushBack(SLTNode** pphead, SLTDataType x);
void SListPushFront(SLTNode** pphead, SLTDataType x);
void SListPopBack1(SLTNode** pphead);
void SListPopBack2(SLTNode** pphead);
void SListPopFront(SLTNode** pphead);
SLTNode *SListSearch(SLTNode* phead, SLTDataType x);
void SListInsertAfter1(SLTNode* pos, SLTDataType x);
void SListInsertAfter2(SLTNode* pos, SLTDataType x);
void SListEraseAfter(SLTNode* pos);
void SListDestroy(SLTNode** pphead);